package net.siufung.boot.datasource.entity;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import net.siufung.boot.datasource.enums.ColumnTypes;
import net.siufung.boot.datasource.rules.IColumnType;
import net.siufung.core.utils.StringPool;

import java.io.Serializable;
import java.util.Objects;

/**
 * @author 陈建峰
 * @since 2022/9/13 7:08 下午
 */
@Data
public class TableFieldExtra implements Serializable {

    private static final long serialVersionUID = 8046571451617190225L;

    /**
     * 列类型
     */
    @Getter
    @Setter
    private IColumnType columnType;

    /**
     * 属性类型
     */
    public String getPropertyType(){
        if(Objects.isNull(columnType)){
            return StringPool.EMPTY;
        }
        return columnType.getValue();
    }

    /**
     * 是否是时间格式
     * @return Boolean
     */
    public Boolean getExistDateType(){
        if(Objects.isNull(columnType)){
            return Boolean.FALSE;
        }
        return ColumnTypes.existDate(columnType.getValue());
    }

    /**
     * 是否是时间格式
     */
    public String getDateFormatPattern(){
        if(Objects.isNull(columnType)){
            return StringPool.EMPTY;
        }
        return ColumnTypes.dateFormat(columnType.getValue());
    }

    /**
     * 是否存在字符串类型
     */
    public Boolean getExistString(){
        if(Objects.isNull(columnType)){
            return Boolean.FALSE;
        }
        return ColumnTypes.existString(columnType.getValue());
    }

    /**
     * 是否存在是否需要格式化字段
     */
    public Boolean getExistFormatNumber(){
        if(Objects.isNull(columnType)){
            return Boolean.FALSE;
        }
        return ColumnTypes.existFormatNumber(columnType.getValue());
    }


}
